package com.ff.discounts.activity

import android.content.Intent
import android.os.Build
import android.os.Parcelable
import com.ff.discounts.util.Constant

/**
 * 页面通用逻辑
 * @author: fufang
 * @date: 2023/10/16
 */
open class BseCommonActivity : com.ff.discounts.activity.BaseActivity() {
    /**
    * 启动页面
    */
     fun startActivity(clazz: Class<*>){
        // 创建 Intent
         val intent = Intent(this,clazz)

        // 启动页面
        startActivity(intent)
    }

    /**
    * 启动页面并关闭当前页面
    */
    fun startActivityAfterFinishThis(clazz: Class<*>) {
        startActivity(clazz)

        // 关闭当前页面
        finish()
    }

    /**
    * 启动页面， 可以传递一个字符串参数
    */
    fun startActivityExtraId(clazz: Class<*>,id:String){
        val intent = Intent(this,clazz).apply {
            // 传递数据
            putExtra(Constant.ID,id)
        }
    }

    /**
    * 获取字符串
    */
   private  fun extraString(key:String):String {
        return extraStringOrNull(key)!!
    }

    private fun extraStringOrNull(key: String): String? {
        return intent.getStringExtra(key)
    }

    /**
    *  获取字符串类型id
    */

    fun extraId(): String{
        return extraString(Constant.ID)
    }

    /**
    * 获取int 值
    */
    fun extraInt(key:String):Int{
        return intent.getIntExtra(key, -1)
    }

    /**
    *  设置状态栏颜色
    */
   protected open fun setStatusBarColor(data:Int) {
       if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
           // 设置状态栏颜色
           val window = window
           window.statusBarColor = data
           //设置导航栏颜色
           window.navigationBarColor = data
       }
   }

    /**
    * 获取data 对象
    */
    inline fun <reified T> extraData(): T {
        return intent.getParcelableExtra(Constant.DATA)!!
    }


}